package com.xxxtea.dto;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.xxxtea.config.converter.BaseEnumDeserializer;
import com.xxxtea.entity.ChatMessage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 消息请求数据传输对象
 *
 * 用于发送聊天消息的请求参数，包括：
 * - 会话关联
 * - 消息内容和类型
 * - 消息类型枚举管理
 *
 * 使用Swagger注解进行API文档生成
 * 使用自定义反序列化器处理枚举类型
 * 使用Lombok注解简化代码
 *
 * @author badman
 * @since 1.0.0
 */
@Data
public class MessageRequest {
	/**
	 * 会话ID
	 * 关联聊天会话表
	 */
	@ApiModelProperty("会话ID")
	private Integer sessionId;

	/**
	 * 消息内容
	 * 消息的具体内容
	 */
	@ApiModelProperty("消息内容")
	private String content;

	/**
	 * 消息类型
	 * 使用枚举类型管理消息类型（文字、图片等）
	 * 使用自定义反序列化器处理
	 */
	@ApiModelProperty("消息类型")
	@JsonDeserialize(using = BaseEnumDeserializer.class)
	private ChatMessage.Type type;
}
